package it.gestionedocumentale.model;

import java.util.Date;
import java.util.Set;

public class Documento {
	
	private Long idDocumento;
	private String nomeDocumento;
	private String path;
	private Double size;
	private Date dataUpload;
	private Set<Utente> listaUtenti;
	private Set<Gruppo> listaGruppi;
	private Set<Classificazione> listaClassificazioni;
	private Set<Tag> listaTag;
	private Utente utenteCreatore;
	
	public Documento() {}
	
	public Documento(String nomeDocumento, String path, Double size, Date dataUpload, Utente utenteCreatore) {
		this.nomeDocumento = nomeDocumento;
		this.path = path;
		this.size = size;
		this.dataUpload = dataUpload;
		this.utenteCreatore = utenteCreatore;
	}
	
	public Documento(String nomeDocumento, String path, Double size, Date dataUpload) {
		this.nomeDocumento = nomeDocumento;
		this.path = path;
		this.size = size;
		this.dataUpload = dataUpload;
	}
	

	public void setIdDocumento(Long idDocumento) {
		this.idDocumento = idDocumento;
	}
	
	public Long getIdDocumento() {
		return idDocumento;
	}

	public String getNomeDocumento() {
		return nomeDocumento;
	}

	public void setNomeDocumento(String nomeDocumento) {
		this.nomeDocumento = nomeDocumento;
	}

	public String getPath() {
		return path;
	}

	public void setPath(String path) {
		this.path = path;
	}

	public Double getSize() {
		return size;
	}

	public void setSize(Double size) {
		this.size = size;
	}
	
	public Date getDataUpload() {
		return dataUpload;
	}
	
	public void setDataUpload(Date dataUpload) {
		this.dataUpload = dataUpload;
	}

	public Set<Utente> getListaUtenti() {
		return listaUtenti;
	}

	public void setListaUtenti(Set<Utente> listaUtenti) {
		this.listaUtenti = listaUtenti;
	}

	public Set<Gruppo> getListaGruppi() {
		return listaGruppi;
	}

	public void setListaGruppi(Set<Gruppo> listaGruppi) {
		this.listaGruppi = listaGruppi;
	}

	public Set<Classificazione> getListaClassificazioni() {
		return listaClassificazioni;
	}

	public void setListaClassificazioni(Set<Classificazione> listaClassificazioni) {
		this.listaClassificazioni = listaClassificazioni;
	}

	public Set<Tag> getListaTag() {
		return listaTag;
	}

	public void setListaTag(Set<Tag> listaTag) {
		this.listaTag = listaTag;
	}
	
	public Utente getUtenteCreatore() {
		return utenteCreatore;
	}
	
	public void setUtenteCreatore(Utente utenteCreatore) {
		this.utenteCreatore = utenteCreatore;
	}

	@Override
	public boolean equals(Object obj) {
		if (obj==null || !(obj instanceof Documento)) {
			return false;
		}
		Documento documento = (Documento) obj;
		if (documento.getIdDocumento()==idDocumento) {
			return true;
		}
		return false;
	}

	@Override
	public String toString() {
		
		return "Documento [idDocumento=" + idDocumento + ", nomeDocumento="
				+ nomeDocumento + ", path=" + path + ", size=" + size
				+ ", dataUpload=" + dataUpload + ", listaUtenti=" + listaUtenti
				+ ", listaGruppi=" + listaGruppi + ", listaClassificazioni="
				+ listaClassificazioni + ", listaTag=" + listaTag
				+ ", utenteCreatore=" + utenteCreatore + "]";
	}
	
}
